package com.acmen.easyapi.util;

import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;

import java.util.Collection;
import java.util.Map;

public class MultiValueMapUtil {
    public static MultiValueMap<String, String> toMultiValueMap(Map map){
        MultiValueMap multiValueMap = new LinkedMultiValueMap();
        if(map==null){
            return multiValueMap;
        }
        map.forEach((k,v)->{
            if(v!=null){
                if(v instanceof Collection){
                    ((Collection)v).forEach(o->{
                        multiValueMap.add(k,String.valueOf(o));
                    });
                }else if(v.getClass().isArray()){
                    Object[] objects = (Object[])v;
                    for(Object o : objects){
                        multiValueMap.add(k,String.valueOf(o));
                    }
                }else{
                    multiValueMap.add(k,String.valueOf(v));
                }
            }
        });
        return multiValueMap;
    }
}
